热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java|学习笔记01概论

目录1.解释型语言和编译型语言编译型语言解释型语言Java是解释型语言or编译型语言?2.Java的发展历史3.Java平台的三大版本JavaSE(Ja

目录

1.解释型语言和编译型语言

编译型语言

解释型语言

Java是解释型语言 or 编译型语言?

2.Java的发展历史

3.Java平台的三大版本

Java SE ( Java Platform Standard Edition)

Java EE ( Java Platform Enterprise Edition )

Java ME ( Java Platform Micro Edition)

4.Java开发环境

JDK(Java Development Kit)

JRE(Java Runtime Environment)

JVM(Java Virtual Machine)

5.Java的版本

6.Java程序的执行过程 




1.解释型语言和编译型语言


编译型语言

程序在执行之前需要一个专门的编译过程,把源代码编译成机器语言,运行时不需要再次翻译,直接使用之前编译的结果就行。代表性的编译型语言有C、C++、Pascal等

特点:程序执行效率高;依赖编译器,因此跨平台性要一差些


解释型语言

源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。代表性的解释型语言有Python、Javascript、Shell等

特点:运行效率一般较低,依赖解释器,跨平台性好


Java是解释型语言 or 编译型语言?

Java究竟是解释型语言还是编译型语言,在程序界依然讨论不休

Java同时具有解释型语言和编译型语言的特点,说Java是编译型语言,主要是因为现在的JVM为了效率,都有一些JIT(Just In-Time Compiler,即时编译器)优化,它又会把热点代码(被多次调用的方法、被多次执行的循环体)的.class的二进制代码编译为本地的机器码直接运行

说Java是编译型语言,是因为Java代码编译后的字节码文件不能直接运行在操作系统上,还需要经过JVM解释为机器码才能在对应操作系统上运行

从Java语言的特点来看,其实它更偏向于解释型语言,比如它的运行效率相比C、C++等语言要低一些、它依赖解释器且跨平台性较好。事实上,随着现代语言的发展,以及即时编译等技术的出现,解释型语言和编译型语言的差距已经逐渐缩小,不必太过纠结于此


2.Java的发展历史

Java的前身:1991年4月,Sun公司成立了Green项目小组,专攻智能家电的嵌入式控制系统,由James Gosling博士领导的绿色计划(Green Project)开始启动,这个计划的产品就是Java语言的前身:Oak(橡树)

Java的诞生:1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布Java 1.0版本。Java语言第一次提出了“一次编译,到处运行”的口号

JavaOne大会:1996年5月底,Sun公司于美国旧金山举行了首届JavaOne大会

Java的三个版本:1999年6月,发布Java的三个版本:J2SE、J2EE、J2ME

命名的重大更新:2005年6月,Java SE6.0发布,J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME

Oracle公司收购Sun:2009年4月20日,Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有

JDK1.8发布:2014年3月18日,Oracle公司发布Java SE 1.8

Java最新版本:2022年,JDK19发布


3.Java平台的三大版本


Java SE ( Java Platform Standard Edition)

Java平台标准版,以前称为 J2SE。JavaSE主要用于桌面应用开发,同时也是Java的基础


Java EE ( Java Platform Enterprise Edition )

Java平台企业版,以前称为 J2EE。JavaEE主要用于Web项目的开发,包括十三种核心技术:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF


Java ME ( Java Platform Micro Edition)

Java平台微型版,以前称为 J2ME。JavaME主要为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供开发环境


4.Java开发环境


JDK(Java Development Kit)

Java开发工具包,其中包括编译工具(javac)打包工具(jar)等,也包括JRE


JRE(Java Runtime Environment)

Java运行时环境,其中包括JVM和Java核心类库,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可


JVM(Java Virtual Machine)

Java虚拟机,JVM可以把字节码解释成具体平台上的机器指令执行,这是Java能够“一次编译,到处运行”的原因


5.Java的版本

Java的版本有两种描述,一种是这样的,比如Java 8;另一种是这样的JDK1.8,它们是一个意思。通常程序员口中的Java版本,指的其实是Java的JDK版本,我们只需要知道

JDK1.8 == JDK8 == Java 8 

JDK1.9 == JDK9 == Java 9

至于为什么JDK1.9 == JDK9,这其实是一个历史遗留问题,JDK1.9的下一个版本没有命名为JDK2.0,而是命名为了JDK10,对应着Java 10,有兴趣的同学可以参考这篇博客——Java--Java版本和JDK版本_MinggeQingchun的博客-CSDN博客_java最新版本是多少 


目前Java最新版本是JDK19 (JDK19 == Java 19

可以到Oracle的官网查看Java的最新版本:Java Downloads | Oracle 中国



6.Java程序的执行过程 


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
author-avatar
手机用户2502929415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有